Mặt trong của trình biên dịch Trình_biên_dịch

Một trình biên dịch hoàn bị sẽ chuyển giao biểu trưng trung gian được làm ra bởi mặt ngoài cho mặt trong. Nhiệm vụ của mặt trong là sản xuất ra chương trình tương đương về chức năng ở ngôn ngữ đích. Việc này bao gồm các giai đoạn:

  1. Phân tích về biên dịch - Quá trình này thu nhặt thông tin về chương trình từ biểu trưng trung gian của các tập tin của nguồn vào. Các phân tích đặc trưng bao gồm phân tích việc sử dụng của định nghĩa biến, phân tích quan hệ giữa các định nghĩa của các biến và việc sử dụng của chúng trong một chuỗi các phép gán giá trị, phân tích sự phụ thuộc của dữ liệu, phân tích các nhãn thay thế, và vân vân. Sự phân tích chính xác là căn bản cho mọi sự tối ưu hóa về biên dịch. Đồ thị gọiđồ thị dòng điều khiển thường được xây dựng trong pha phân tích này.
  2. Tối ưu hóa về biên dịch - Ngôn ngữ trung gian biểu trưng được chuyển dạng thành các dạng tương đương về chức năng nhưng nhanh hay gọn hơn. Những việc tối ưu hoá thông dụng là mở rộng nội tuyến, triệt tiêu mã chết, phép thế hằng, chuyển dạng vòng lặp, phân phối thanh ghi và ngay cả song song hoá tự động.
  3. Tạo mã - Chuyển dịch ngôn ngữ trung gian sang ngôn ngữ đích, thường tạo mã cho một hệ thống có cùng ngôn ngữ máy. Việc này bao gồm các quyết định về tài nguyên và kho lưu trữ chẳng hạn như là quyết định xem biến nào thì nên đặt vào thanh ghi hay đặt vào kho nhớ, quyết định sự lựa chọn cũng như việc đặt thời biểu của các chỉ thị máy, và theo đó quyết định về các chế độ địa chỉ hoá tương ứng (xem thêm Thuật toán Sethi-Ullman).